一.File类
  a.基础概念
    我们在操作系统(windows,linux,mac os)中经常操作两种数据:文件和文件夹
    操作系统通过路径来唯一定位一个文件或文件夹
    xx省xx市xx县xxx街道xx小区xx单元xx门牌号 收件地址类似操作系统中的路径
    文件:File
    文件夹:Directory (dir)
    路径: path
  b.绝对路径和相对路径
   1.绝对路径:以盘符开头的路径
      新建一个my-project工程,目录如下
          my-project
              1.txt
        1.txt的绝对路径: C:\Users\24595\Desktop\my-project\1.txt
   2.相对路径:指的是一个文件或文件夹相对于另一个文件或文件夹的路径
     在IDEA工程下的文件或文件夹的相对参照物就是 当前工程
     my-project的绝对路径:
        C:\Users\24595\Desktop\my-project
     1.txt的绝对路径:
        C:\Users\24595\Desktop\my-project\1.txt
     1.txt的相对路径:(去除当前文件或文件夹和参照物两者相同的路径即可)
        去除   C:\Users\24595\Desktop\my-project 路径 : 1.txt
     2.txt的绝对路径:
        C:\Users\24595\Desktop\my-project\src\2.txt
     2.txt的相对路径
        src\2.txt
  c.File类中的方法
      1.构造方法
		/**
		 * File类的构造方法:
		 * File类的构造方法:不会检测传入的路径是否在硬盘真实存在
		 *
		 *
		 * File(String pathname)
		 *           pathname:路径名 既可以传相对路径,又可以传绝对路径
		 *           通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
		 * File(String parent, String child)
		 *           parent:父级路径 一般传入文件或文件夹前面的路径
		 *           child:子级路径 一般传入文件或文件夹
		 *           最终的路径就是将parent和child拼接后路径
		 *           根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
		 * File(File parent, String child)
		 *           根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
		 */
     2.成员方法
      1.判断方法
		/**
		 * File类中的判断功能:
		 *    boolean exists()
		 *           如果指定的路径存在该文件或文件夹那么结果返回true,当前路径不存在该文件或文件夹就返回false
		 *    boolean isDirectory()
		 *            如果当前路径不是一个目录结果返回false,如果是一个目录结果返回true
		 *            如果路径在硬盘不存在结果返回false
		 *   boolean isFile()
		 *          如果当前路径不是一个文件结果返回false,如果是一个文件结果返回true
		 *          如果路径在硬盘不存在结果返回false
		 */
      2.创建方法
		/**File类的创建功能
		 * boolean createNewFile()
		 *           可以根据绝对路径或者相对路径创建一个空文件,如果创建成功则返回true
		 *           如果指定的路径中当前文件已经存在,那么createNewFile()不在创建该文件,而且返回false
		 *           如果指定的路径在硬盘不存在,那么直接抛出IOException 系统找不到指定的路径。
		 */
		/**File类的创建功能
		 * boolean mkdir()
		 *            根据指定的路径创建文件夹,如果创建成功,结果返回true
		 *            如果指定的路径表示该文件夹已存在,那么mkdir()方法就不再创建文件夹,结果返回false
		 *            mkdir()只能创建文件夹不能创建文件
		 *            mkdir()方法不能创建多级文件夹,只能创建单级文件夹
		 *  boolean mkdirs()
		 *           创建此抽象路径名指定的目录，包括所有必需但不存在的父目录。
		 *           mkdirs()方法即可以创建单级目录又可以创建多级目录
		 */
	 3.删除功能
		/**
		 * File类的删除功能:
		 *  boolean delete()
		 *           File类的delete()方法删除文件或文件夹不走回收站
		 *           File类的delete()方法只能删除一个空的文件夹,如果想要删除一个非空文件夹,需要先删除这个文件夹中的所有内容,然后在删除该文件夹
		 *           ghk
		 *             abc
		 *               def
		 *               1.txt
		 *           delete()方法既可以删除一个文件也可以删除一个文件夹,如果删除成功则返回true,否则返回false
		 *
		 */
     4.获取功能
		/**
		 * File类的获取功能:
		 *    String getName()
		 *           返回的是路径中的最后一级路径(文件或文件夹)
		 *
		 *    String getPath()
		 *           如果File对象中封装的是相对路径,那么getPath结果就是相对路径
		 *           如果File对象中封装的是绝对路径,那么getPath结果就是绝对路径
		 *
		 *     long length()
		 *           获取文件的长度,单位是byte
		 *           不能获取文件夹的长度
		 *
		 *     String getParent()
		 *            该方法返回父级路径(最后一级路径前面的路径)
		 *            如果该路径只有一级(没有父级路径),结果返回null
		 *    File getParentFile()
		 *           返回此抽象路径名父目录的抽象路径名；如果此路径名没有指定父目录，则返回 null。
		 *
		 *    File getAbsoluteFile()
		 *
		 *   String getAbsolutePath()
		 *           无论File对象中封装的是什么路径,最终都返回一个绝对路径
		 */

			/**File类的获取功能:
			 *
			 *  String[] list()
			 *           获取指定路径下的文件或文件夹的名称,将这些名称封装到一个字符串数组中,返回这个字符串数组
			 *           只能获取一级文件夹下的内容,子级文件夹下的内容获取不到
			 *           如果路径表示一个文件路径,该方法返回null,遍历null会报java.lang.NullPointerException
			 *   File[] listFiles()
			 *          获取指定路径下的文件或文件夹的路径,将这些路径封装到一个File[]数组中,然后返回该数组
			 *          如果指定的文件夹路径是相对路径,那么将来输出File[]数组中的file对象,最终结果都是一个个相对路径
			 *          如果指定的文件夹路径是绝对路径,那么将来输出File[]数组中的file对象,最终结果都是一个个绝对路径
			 *          只能获取一级文件夹下的内容,子级文件夹下的内容获取不到
			 *          如果路径表示一个文件路径,该方法返回null,遍历null会报java.lang.NullPointerException
			 */